﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;
namespace QuanLyDoiXe
{
    public partial class MH_LapHoaDonGiaoHang : Form
    {
        public string ID;
        public int MaNV;
        public MH_LapHoaDonGiaoHang(string ID,int MaNV)
        {
            InitializeComponent();
            this.ID = ID;
            this.MaNV = MaNV;
        }

        private void btQuayLai_Click(object sender, EventArgs e)
        {
            new MH_QuanLy(ID, MaNV).Show();
            this.Close();
        }

        private void tbMaXe_TextChanged(object sender, EventArgs e)
        {
            if (tbMaXe.Text == "")
            {
                tbBienSo.Clear();
                tbTrongTai.Clear();
                tbHangXe.Clear();
             
                return;
            }
            XeBus xBus = new XeBus();
            IEnumerable<XE> xDto;
            xDto = xBus.LayXe(Convert.ToInt32(tbMaXe.Text));
            if (xDto.Count() != 0)
            {
                tbBienSo.Text = xDto.Single().BienSo;
                tbTrongTai.Text = xDto.Single().LOAITRONGTAI.LoaiKg.ToString();
                tbHangXe.Text = xDto.Single().LOAIHANGXE.TenHang.ToString();
               
            }
            else
            {
                tbBienSo.Clear();
                tbTrongTai.Clear();
                tbHangXe.Clear();
              
                return;
            }
        }

        private void tbMaXe_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void tbMaDD_TextChanged(object sender, EventArgs e)
        {
            if (tbMaDD.Text == "")
            {
                tbTenDD.Clear();
                tbNguoiLienHe.Clear();
                tbDiaChi.Clear();

                return;
            }
           DiaDiemBus ddBus = new DiaDiemBus();
            IEnumerable<DIADIEM> ddDto;
            ddDto = ddBus.LayDiaDiem(Convert.ToInt32(tbMaDD.Text));
            if (ddDto.Count() != 0)
            {
                tbTenDD.Text=ddDto.Single().TenDD;
                tbNguoiLienHe.Text=ddDto.Single().NguoiLienHe;
                tbDiaChi.Text=ddDto.Single().DiaChi;

            }
            else
            {
                tbTenDD.Clear();
                tbNguoiLienHe.Clear();
                tbDiaChi.Clear();

                return;
            }
        }

        private void tbMaDD_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void tbSoLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void MH_LapHoaDonGiaoHang_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'quanLyDoiXeHoaDon.HOADONGIAOHANG' table. You can move, or remove it, as needed.
         
            LapPhieuGiaoHangBus pBus = new LapPhieuGiaoHangBus();
            DGPhieu.DataSource = pBus.LayHoaDon();
        }

        private void btTiepNhan_Click(object sender, EventArgs e)
        {
            if (tbBienSo.Text == "")
            {
                MessageBox.Show("Mã Xe Không Tồn Tại!");
                return;
            }
            if (tbTenDD.Text == "")
            {
                MessageBox.Show("Mã Địa Điểm Không Tồn Tại!");
                return;
            }
            if (tbSoLuong.Text == "")
            {
                MessageBox.Show("Chưa Nhập Số Lượng!");
                return;
            }
            if (dtNgayGiao.Value.Year < dtNgayLap.Value.Year)
            {
                MessageBox.Show("Thời gian Giao phải lớn hớn Thời Gian Lập Phiếu!");
                return;
            }
            else
            {
                if (dtNgayGiao.Value.Month < dtNgayLap.Value.Month)
                {
                    MessageBox.Show("Thời gian Giao phải lớn hớn Thời Gian Lập Phiếu!");
                    return;
                }
                else
                {
                    if (dtNgayGiao.Value.Day < dtNgayLap.Value.Day)
                    {
                        MessageBox.Show("Thời gian Giao phải lớn hớn Thời Gian Lập Phiếu!");
                        return;
                    }
                }
            }
            LapPhieuGiaoHangBus pBus = new LapPhieuGiaoHangBus();
            HOADONGIAOHANG hdDto = new HOADONGIAOHANG();
            hdDto.MaHoaDon = pBus.LayMa();
            hdDto.MaKhach = Convert.ToInt32(tbMaDD.Text);
            hdDto.MaXeGiao = Convert.ToInt32(tbMaXe.Text);
            hdDto.NgayGiaoHang = dtNgayGiao.Value;
            hdDto.NgayLapHoaDon = dtNgayLap.Value;
            hdDto.SoLuong = Convert.ToInt32(tbSoLuong.Text);
            hdDto.TrangThai = 0;
            pBus.LapPhieuGiaoHang(hdDto);
            MessageBox.Show("Lập Phiếu Thành Công!");
           
            DGPhieu.DataSource = pBus.LayHoaDon();

        }

        private void btLamLai_Click(object sender, EventArgs e)
        {
            tbMaDD.Clear();
            tbMaXe.Clear();
            tbSoLuong.Clear();
            dtNgayGiao.Value = DateTime.Now;
            dtNgayLap.Value = DateTime.Now;
        }



    }
}
